package com.earl.eatbao.service;

import com.earl.eatbao.commons.service.BaseService;
import com.earl.eatbao.domain.eatbao.Goods;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 商品接口层，隔离变化
 * @author Administrator
 * @version 1.0
 * @created 23-十一月-2016 17:11:44
 */
public interface GoodsService  extends BaseService<Goods, Long>{

	/**
	 * 审查通过
	 * @param goodId
	 */
	Boolean passGoodsCheck(long goodId);

	/**
	 * 添加商品，进入待审核状态
	 * @param goods
	 * @param file
	 * @return
	 */
    Boolean addGoods(Goods goods, MultipartFile file);

	/**
	 * 审核不通过
	 * @param goodId
	 */
	Boolean failGoodsCheck(Long goodId);

	/**
	 * 商家上架商品
	 * @param goodId
	 * @return
	 */
	Boolean shopPutAwayGoods(Long goodId);

    /**
     * 商家下架商品
     * @param goodId
     * @return
     */
	Boolean shopSoldOutGoods(Long goodId);

    /**
     * 管理员上架商品
     * @param goodId
     * @return
     */
	Boolean adminPutAwayGoods(Long goodId);

    /**
     * 管理员下架商品
     * @param goodId
     * @return
     */
	Boolean adminSoldOutGoods(Long goodId);

	/**
	 * 根据商品上下架状态查询商品
	 * 
	 */
	List<Goods> findByStatus(int status);

	/**
	 * 查询未被审核浏览的商品
	 * @return
	 */
	List<Goods> findByWatch(Boolean watch);

	/**
	 * 查询商店的所有商品
	 * @param shopId
	 * @return
	 */
	List<Goods> findShopGoods(Long shopId);

	/**
	 * 上传商品图片
	 * @param file 文件
	 * @param goodsId 商品Id
	 * @return
	 */
    Boolean upLoadGoodImage(MultipartFile file, Long goodsId);

	List<Goods> findShopUnCheckGoods(Long shopId);

	List<Goods> findOnShevlesGoods();
}